﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Zero.POCO.Compagne;
using Zero.POCO.Donnees;

namespace Zero.POCO.Views
{
    public interface IProfilPenetrationView
    {
        ProfilPenetrationView ProfilPenetrationView { get; set; }
        Vague VaguePrincipale { get; set; }
        List<Vague> Vague { get; set; }
        SupportsView SupportPrinciplae { get; set; }
        List<SupportsView> Supports { get; set; }
        
    }

  

    public class SupportsView
    {
        public String Nom { get; set; }
        public int Id { get; set; }
        public TypeMedia Media { get; set; }
    }

    public class ProfilPenetrationView
    {
        

        public ProfilPenetrationSup ProfilPrincipale { get; set; }
        public List<ProfilPenetrationSup> ProfilSupport { get; set; } 
    
    }

    public class ProfilPenetrationSup
    {
        public Vague Vague { get; set; }
        public ProfilPenetrationSupport ProfilPrincipale { get; set; }
        public List<ProfilPenetrationSupport> ProfilSupport { get; set; } 
    
    }

    public class ProfilPenetrationSupport
    {
        public SupportsView SupportView { get; set; }
        public VilleStatistique StatistiqueVille { get; set; }
        public SexeStatistique StatistiqueSexe { get; set; }
        public AgeStatistique StatitiqueAge { get; set; }
        public InstructionStatistique StatistiqueInstruction { get; set; }
        public CSPStatistique StatistiqueCSP { get; set; }
    }


    public class VilleStatistique
    {
        public Vague Vague { get; set; }
        public float Alger { get; set; }
        public float Constantine { get; set; }
        public float Oran { get; set; }
        public float Setif { get; set; }
    }

    public class SexeStatistique
    {
        public  float Homme { get; set; }
        public  float Femme { get; set; }

    }

    public class AgeStatistique
    {
        public float moins12 { get; set; }
        public float Entre12Et25 { get; set; }
        public float Entre25Et55 { get; set; }
        public float Plusde55 { get; set; }

    }

    public class InstructionStatistique
    {
        public float SansInstruction { get; set; }
        public float SansInstructionLireEtEcrire { get; set; }
        public float Primaire { get; set; }
        public float Moyen { get; set; }
        public float Secondaire { get; set; }
        public float Universitaire { get; set; }

    }

    public class CSPStatistique
    {
        public float HautFonctionnaire { get; set; }
        public float ProfessionLiberal { get; set; }
        public float Cadre { get; set; }
        public float CadreMoyen { get; set; }


        public float Employee { get; set; }
        public float PetitPatron { get; set; }
        public float Chomeur { get; set; }
        public float FemmeAuFoyer { get; set; }


        public float Retraite { get; set; }
        public float Pensionne { get; set; }
        public float AutreInactif { get; set; }

    }









    public interface IPenetrationView
    {
        ProfilView ProfilView { get; set; }
        List<Vague> Vague { get; set; }
        List<SupportsView> Supports { get; set; }
        List<Filter> Filtres { get; set; }

    }

   

    public class ProfilView
    {
        public ProfilSupport ProfilSupportPricncipale { get; set; }
        public List<ProfilSupport> ProfilSupport { get; set; }
    }

    public class ProfilSupport
    {
        public int NombreIndividus { get; set; }
        public Vague Vague { get; set; }
        public ProfilPenVague ProfilPenPrincipale { get; set; }

        public List<ProfilPenVague> ProfilPens { get; set; }
    }

    public class ProfilPenVague
    {
        public SupportsView SupportView { get; set; }
        public float PenetrationMois { get; set; }
        public float PenetrationJour { get; set; }
    }












    public interface IPartAudienceView
    {
        PartAudienceMain PartAudienceMain { get; set; }
        List<Vague> Vague { get; set; }
        List<SupportsView> Supports { get; set; }
        List<Filter> Filtres { get; set; }

    }


    public class PartAudienceMain
    {
        public PartAudiences VaguePrincipale { get; set; }
        public List<PartAudiences> VaguesRef { get; set; } 
    }

    public class PartAudiences
    {
        public float NombreIndividus { get; set; }
        public PartAudienceSupport ProfilSupportPricncipale { get; set; }
        public List<PartAudienceSupport> ProfilSupport { get; set; }
        public Vague Vague { get; set; }
    }

    public class PartAudienceSupport
    {
        public SupportsView SupportView { get; set; }
        public float Penetration { get; set; }
        public float PenetrationTotal { get; set; }
    }







    public interface IStructureView
    {
        StructureVague StructureAudiences { get; set; }
        List<Vague> Vague { get; set; }
        List<SupportsView> Supports { get; set; }
        List<Filter> Filtres { get; set; }

    }


    public class StructureVague
    {
        public float NbIndividus { get; set; }
        public StructureAudiences structureAudiencesVaguePrincpale { get; set; }
        public List<StructureAudiences> structureAudiencesVagueRef { get; set; }

    }

    public class StructureAudiences
    {
        public Vague Vague { get; set; }
        public StructureSupport ProfilSupportPricncipale { get; set; }

        public StructureSupport ProfilSupportGlobal { get; set; }
        public List<StructureSupport> ProfilSupport { get; set; }
    }

    public class StructureSupport
    {
        public SupportsView SupportView { get; set; }
        public List<ListPenetration> ListePenetration { get; set; }
        public List<ListDureeEcoute> DureeEcouteActuelle { get; set; }
        public Vague Vague { get; set; }
    }


    public class ListPenetration
    {
        public int Order { get; set; }
        public float Penetration { get; set; }
        public int Jour { get; set; }

    }

    public class ListDureeEcoute
    {
        public float Duree { get; set; }
        public int Jour { get; set; }

    }
}